﻿#region Opis pliku
//-----------------------------------------------------------------------------
// Bullet.cs
// Autor: Jan Fraś
// 30.10.2012
//-----------------------------------------------------------------------------
#endregion
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Content;


namespace pogra
{
    /// <summary>
    /// klasa wszystkich pocisków oraz bazowa dla rakiety
    /// pociski są różnicowane przy pomocy konstruktora 
    /// docelowo metoda update powinna przemieszczać pocisk w przestrzeni i sprawdzać czy cel został osiągnięty
    /// na chwilę obecną update powoduje trafienie w cel i zaraportowanie strzelającemu o wyniku
    /// na bazie tego raportu strzelający podnosi swoje doświadczenie.
    /// Efekty są zapewniane przez emitery przyporządkowane do strzelajcego
    /// </summary>
    public class Bullet
    {
        protected int power;
        protected float rotation;
        protected Entity target;
        protected Unit owner;
        protected bool used = false;
        protected ParticleSystem particleSystem;

        public Bullet(int power,float rotation, Entity target, Unit owner, ParticleSystem particleSystem)
        {
            this.power = power;
            this.rotation = rotation;
            this.target = target;
            this.owner = owner;
            this.particleSystem = particleSystem;
        }

        virtual public void Update(TimeSpan time)
        {
            owner.report(target.takehit(power,rotation + Rand.nextFloat(-0.5,0.5)));
            used = true;
        }

        public bool Used
        {
            get{return used;}
        }

        virtual public void Draw(ExtendedSpriteBatch exSpriteBatch)
        {

        }
    }
}
